package com.ht.api.call.func.impl.sop;

import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.ht.api.bean.AjaxResult;
import com.ht.api.bean.LoginBean;
import com.ht.api.call.func.IFunctionCall;
import com.ht.api.db.Db;
import com.ht.api.db.Entity;
import com.ht.api.db.exception.HtException;
import com.ht.api.service.SopService;
import lombok.extern.slf4j.Slf4j;

/**
 * 刷新旅程用户函数
 * @author asq
 * @createTime 2025年3月20日 10:05:40
 */
@Slf4j
public class SopRefreshUserFunctionCall implements IFunctionCall {

	@Override
	public String getName() {
		return "刷新旅程用户函数";
	}

	@Override
	public JSONObject execute(LoginBean me, JSONObject param, AjaxResult result) {
		// 获取登陆用户的数据源

		String sopId = param.getStr("main_id");

		Entity sop = Db.createSqlParser("sop").where("main_id", sopId).findOne(me.getDataSource());
		if (sop == null || sop.getInt("status") == -1) {
			throw new HtException("旅程在停用中，不可刷新旅程用户！");
		}

		SopService.refreshSopUser(me.getDataSource(), me.getStreamLoadConfig(), sop, false);
		
		return JSONUtil.createObj();
	}
}
